function myValidate(inputId,required,type,minlength,maxlength){
	$("#sp_"+inputId).html("");
	$("#sp_"+inputId).css({"color": "red","float": "right"});
	var flag=true;
	var value=$("#"+inputId).val().Trim();
	if(required){
		if(value==""){
			$("#sp_"+inputId).html("不能为空！");
			flag= false;
		}else{
			flag= checkType(inputId,type,minlength,maxlength);
		}
	}else{
		if(value!=""){
			flag= checkType(inputId,type,minlength,maxlength);
		}
	}
	return flag;
}

function myValidateAjax(inputId,url){
	var flag=true;
	var value=$("#"+inputId).val().Trim();
	if(value!=""){
	$.ajax({
		type : "post",
		url : encodeURI(encodeURI(url)),
		data : {userName:value},
		dataType : "json",
		async: false,
		cache: false,
		success:function(returnData){
			//扩展回调函数
			if(returnData==true){
			}else{
				flag=false;
				alert("此用户名已经存在！");
			}
		},
		error: function(XMLHttpRequest, textStatus, errorThrown) { 
			alert("请求出现错误！");
        },
        complete: function(XMLHttpRequest, textStatus) { 
        }
	});
	}
	return flag;
}

function checkType(inputId,type,minlength,maxlength){
	var value=$("#"+inputId).val().Trim();
	if(type=="num"){
		if(!isNumber(value)){
			$("#sp_"+inputId).html("手机号格式不正确！");
			return false;
		}
	}else if(type=="mobile"){
		if(!isMobileNum(value)){
			$("#sp_"+inputId).html("手机号格式不正确！");
			return false;
		}
	}else if(type=="tel"){
		if(!testit(value)){
			$("#sp_"+inputId).html("电话号码格式不正确！");
			return false;
		}
	}else if(type=="email"){
		if(!isEmail(value)){
			$("#sp_"+inputId).html("邮箱格式不正确！");
			return false;
		}
	}else if(type=="text"){
		if(getByteLen(value)<minlength || getByteLen(value)>maxlength){
			$("#sp_"+inputId).html("数据长度限制为"+minlength+"--"+maxlength+"！");
			return false;
		}
	}else if(type=="password"){
		if(!isPassword(value)){
			$("#sp_"+inputId).html("密码可以用数字、字母、字符，长度为6--16！");
			return false;
		}
	}else if(type=="password2"){
		var inputId2=inputId.substring(0,inputId.length-1).Trim();
		var password = $("#"+inputId2).val().Trim();
		if(value!=password){
			$("#sp_"+inputId).html("两次密码输入不一致！");
			return false;
		}
	}else if(type=="userName"){
		if(!isUserName(value)){
			$("#sp_"+inputId).html("用户名可以用数字、字母、字符，长度为4--16！");
			return false;
		}
	}
	return true;
}


function getByteLen(val) {
    var len = 0;
    for (var i = 0; i < val.length; i++) {
         var a = val.charAt(i);
         if (a.match(/[^\x00-\xff]/ig) != null) 
        {
            len += 2;
        }
        else
        {
            len += 1;
        }
    }
    return len;
}

/**
 * 是否是正则表达式
 */
function isMac(str) {
	var reg = /^([0-9a-fA-F]{2})(([/\s:][0-9a-fA-F]{2}){5})$/;
	return reg.test(str);
}

/**
 * 是否是数字
 */
function isNumber(str) {
	var reg = /^\d+$/;
	return reg.test(str);
}

/**
 * 是否是正整数
 * 
 * @param str
 */
function isInt(str) {
	var reg = /^[1-9]{1,}[0-9]*$/;
	var b = reg.test(str);
	return b ;
}

/**
 * 判断是否是汉字、字母、数字组成
 * 
 * @param str
 * @returns {Boolean}
 */
function isChinaOrNumbOrLett(str) {
	var regu = /^[0-9a-zA-Z\u4e00-\u9fa5]+$/;
	return regu.test(str);
}

/**
 * 判断是否是数字或字母 (6-14位)
 * 
 * @param str
 * @returns {Boolean}
 */
function isNumberOrLetter(str) {
	// var regu = /^[0-9a-zA-Z]$/;
	var regu = /^[A-Za-z0-9]+$/;
	return regu.test(str);
}

/**
 * 判断是否是数字或字母 (6-14位)
 * 
 * @param str
 * @returns {Boolean}
 */
function isNumberOrLetterOrChar(str) {
	// var regu = /^[0-9a-zA-Z]$/;
	var regu = /^[A-Za-z0-9_\-=\+!@#\$%\^\*\(\)\?\.,;:\{\}~\[\]\|~`\/]+$/;
	return regu.test(str);
}

function isPassword(str) {
	var regu = /^[A-Za-z0-9_\-=\+!@#\$%\^\*\(\)\?\.,;:\{\}~\[\]\|~`\/]{6,16}$/;
	return regu.test(str);
}

function isUserName(str) {
	var regu = /^[A-Za-z0-9_\-=\+!@#\$%\^\*\(\)\?\.,;:\{\}~\[\]\|~`\/]{4,16}$/;
	return regu.test(str);
}

/**
 * 验证手机号
 * 
 * @param str
 * @returns {Boolean}
 */
function isMobileNum(str) {
	// var regu = /^(?:13d|15[89])-?d{5}(d{3}|*{3})$/;
	//var regu = /^[1][0-9][0-9]{9}$/;
	var regu = /^(13[\d]{9}|15[\d]{9}|18[\d]{9}|17[\d]{9})$/;
	// /((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)/
	return regu.test(str);
}

/**
 * email格式验证
 * 
 * @param str
 * @returns {Boolean}
 */
function isEmail(str) {
	// var regu = /^[-_A-Za-z0-9_\.\-]+@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;
	var regu= /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	return regu.test(str);
}
/**
 * 汉字验证2到30位
 * 
 * @param str
 * @returns {Boolean}
 */
function isChinese(str){
	var regu=/^[\u2E80-\u9FFF]{2,30}$/;
	return regu.test(str);
}
/**
 * 日期验证
 * 
 * @param str
 * @returns {Boolean}
 */
function isDate(str){
if (isNull(str)) return false; 
 var r = str.match(/^(\d{4})(-|\/)(\d{1,2})(-|\/)(\d{1,2})$/); 
 if(r==null)return false; 
 var d= new Date(r[1], r[3]-1, r[5]); 
 return (d.getFullYear()==r[1] && (d.getMonth()+1)==r[3] && d.getDate()==r[5]); 
}

/**
 * 验证是否为空
 * 
 * @param id
 */
function isNull(id) {
	var value = $("#" + id).val();
	value = $.trim(value);
	if (value == "") {
		return true;
	} else {
		return false;
	}
}
/**
 * 验证是否为金额
 * 
 * @param id
 */
function isMoney(str) {
	var regu = /^[0-9]{1}\d*(\.\d*)?$/;
	return regu.test(str);
}

/**
 * 检查是否是传真号
 * 
 * @param pho
 * @returns
 */
function testit(pho){  
	// var filter=/^0\d{2,3}\-?\d{7,8}$/;
	//var filter=/^(([0\+]\d{2,3}-)?(0\d{2,3}))-?(\d{7,8})(-(\d{3,}))?$/;
	var filter= /^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}$/;   
	return filter.test(pho);  
}


function IsURL(str_url) { 
	//	var strRegex = "^((https|http|ftp|rtsp|mms)://)?[a-z0-9A-Z]{3}\.[a-z0-9A-Z][a-z0-9A-Z]{0,61}?[a-z0-9A-Z]\.com|net|cn|cc|org(:s[0-9]{1-4})?/$";
	    var strRegex = '^((https|http|ftp|rtsp|mms)?://)'
+ '?(([0-9a-z_!~*\'().&=+$%-]+: )?[0-9a-z_!~*\'().&=+$%-]+@)?' //ftp的user@
+ '(([0-9]{1,3}.){3}[0-9]{1,3}' // IP形式的URL- 199.194.52.184
+ '|' // 允许IP和DOMAIN（域名）
+ '([0-9a-z_!~*\'()-]+.)*' // 域名- www.
+ '([0-9a-z][0-9a-z-]{0,61})?[0-9a-z].' // 二级域名
+ '[a-z]{2,6})' // first level domain- .com or .museum
+ '(:[0-9]{1,4})?' // 端口- :80
+ '((/?)|' // a slash isn't required if there is no file name
+ '(/[0-9a-z_!~*\'().;?:@&=+$,%#-]+)+/?)$'; 
		var re = new RegExp(strRegex);
		//re.test() 
		if (re.test(str_url)) {
			if(str_url.indexOf(',')>0||str_url.indexOf('，')>0||str_url.indexOf('；')>0||str_url.indexOf(';')>0){
				return (false);
			}
			return (true); 
		} else { 
			return (false); 
		} 
	}

/**
 * 验证方法
 * 
 * @param str
 */

function verification(){
	allInputTrim();// 去掉输入框trim
	// debugger;
	var input =$("input[notnull='true'],select[notnull='true'],textarea[notnull='true']");
	for(var i=0;i<input.length;i++){
		if($(input[i]).val() == ""){
			$.messager.alert("警告", getInfo(input[i])+",不能为空!", 'warning');
			return false;
		}
	}
	
	var min = $("input[min],textarea[min]");
	for(var i=0;i<min.length;i++) {
		if($(min[i]).val().length<$(min[i]).attr("min")){
			$.messager.alert("警告", getInfo(min[i])+"输入不能小于最小长度"+$(min[i]).attr("min"), 'warning');
		 	$(min[i]).focus();
		 	return false;
		}
	}
	
	var max = $("input[max],textarea[max]");
	for(var i=0;i<max.length;i++) {
		if($(max[i]).val().length>$(max[i]).attr("max")){
		 	$(max[i]).focus();
		 	return false;
		}
	}
	
	var inputType= $("input[inputType]");
	for (var i = 0; i < inputType.length; i++) {
		if($(inputType[i]).val()!=""){
			if($(inputType[i]).attr("inputType")=="email"){
				if(!isEmail($(inputType[i]).val())){
					$.messager.alert("警告",getInfo(inputType[i])+"，输入不合法!", 'warning');
					$(inputType[i]).focus();
				 	return false;
				}
			}
			if($(inputType[i]).attr("inputType")=="intType"){
				if(!isInt($(inputType[i]).val())){
					$.messager.alert("警告",getInfo(inputType[i])+"，输入不合法!", 'warning');
					$(inputType[i]).focus();
				 	return false;
				}
			}
			
		 	if($(inputType[i]).attr("inputType")=="money"){
				if(!isMoney($(inputType[i]).val())){
					$.messager.alert("警告",getInfo(inputType[i])+"，输入不合法!", 'warning');
					$(inputType[i]).focus();
				 	return false;
				}
			}
		 	
			if($(inputType[i]).attr("inputType")=="faxNo"){
				if(!testit($(inputType[i]).val())){
					$.messager.alert("警告",getInfo(inputType[i])+"，输入不合法!", 'warning');
					$(inputType[i]).focus();
				 	return false;
				}
			}
		 	if($(inputType[i]).attr("inputType")=="number"){
		 		if(!isNumber($(inputType[i]).val())){
		 			$.messager.alert("警告",getInfo(inputType[i])+"，输入不合法!", 'warning');
					$(inputType[i]).focus();
				 	return false;
		 		}
		 	}
		 	
		 	if($(inputType[i]).attr("inputType")=="mobile"){
		 		if(!isMobileNum($(inputType[i]).val())){
		 			$.messager.alert("警告",getInfo(inputType[i])+"，输入不合法!", 'warning');
					$(inputType[i]).focus();
				 	return false;
		 		}
		 	}
		 	
		 	if($(inputType[i]).attr("inputType")=="date"){
		 		if(!isDate($(inputType[i]).val())){
		 			$.messager.alert("警告",getInfo(inputType[i])+"，输入不合法!", 'warning');
					$(inputType[i]).focus();
				 	return false;
		 		}
		 	}
		}
		
	}
	return true;

}
function getInfo(obj){
	if($(obj).attr("info")){
		return $(obj).attr("info");
	}else{
		return "";
	}
}



function validate(obj){
	var $validate = $("form input");
	var r = 0;
	var name = obj;
	var jobj = $("#"+obj);
	var value = jobj.val();
	var $input = jobj.attr('validateType');
	if(typeof($input) != "undefined"){
		var $inputArr = $input.split(";");
		for(var i=0 ; i < $inputArr.length ; i++){
			switch ($inputArr[i]) {
			case "notNull":
				if(value == ""){
					$("#"+name+"Tip").html('<font color="red">&nbsp;&nbsp;&nbsp;必填项！</font>');
					r--;
				}
				break;
			case "phone":
				if(!isMobileNum(value)){
					$("#"+name+"Tip").html('<font color="red">&nbsp;&nbsp;&nbsp;电话格式不正确！</font>');
					r--;
				}
				break;
			case "emailAndphone":
				if(!isMobileNum(value)&&!isEmail(value)){
					$("#"+name+"Tip").html('<font color="red">&nbsp;&nbsp;&nbsp;电话或邮箱格式不正确！</font>');
					r--;
				}
				break;
			case "email":
				if(!isEmail(value)){
					$("#"+name+"Tip").html('<font color="red">&nbsp;&nbsp;&nbsp;邮箱格式不正确！</font>');
					r--;
				}
				break;
			default:
				break;
			}
			if(r==0){
				$("#"+name+"Tip").html('<font color="green">&nbsp;&nbsp;&nbsp;正确！</font>');
				r++;
			}
		}
	}
	return r;
}

function validateText(arr){
	alert(arr[i]);
	var b = 0;
	for(var i = 0;i<arr.length;i++){
		alert(arr[i]);
		$("#"+arr[i]).blur(function() {
			b += validate(arr[i]);
		});
	}
	return b;
}

function validateSelect(arr){
	var b = 0;
	for(var i = 0;i<arr.length;i++){
		$("#"+arr[i]).change(function() {
			b += validate(arr[i]);
		});
	}
	return b;
}

// input标签验证——————————————————start byzhc
/*
 * 使用方法为 input标签中添加自定义validateType属性。 1、值为trim 2、提交form时，执行validateText()方法
 * 3、一个input标签可以添加多个验证以 ";" 分隔 例如：<input type="text" name="name"
 * value="${messageFormula.name }" validateType="trim;number">
 */
function validateAll(){
	var $validate = $("form input,textarea,select");
	var r = 0;
	$validate.each(function(){
		var name = this.id;
		var value = $(this).val();
		var $input = $(this).attr('validateType');
		if(typeof($input) != "undefined"){
			var $inputArr = $input.split(";");
			var r1 = 0;
			for(var i=0 ; i < $inputArr.length ; i++){
				switch ($inputArr[i]) {
				case "notNull":
					var b2 = value == ""||value ==null ||value == "null" || value == undefined;
					// alert(name+"---"+ value+"---"+b2);
					if(b2){
						$("#"+name+"Tip").html('<font color="red">&nbsp;&nbsp;&nbsp;必填项！</font>');
						r1--;
						r--;
						// alert(name+r1);
					}
					break;
				case "email":
					if(!isEmail(value)){
						$("#"+name+"Tip").html('<font color="red">&nbsp;&nbsp;&nbsp;邮箱格式不正确！</font>');
						r1--;
						r--;
						// alert(name+r1);
					}
					break;
				case "emailAndphone":
					if(!isMobileNum(value)&&!isEmail(value)){
						$("#"+name+"Tip").html('<font color="red">&nbsp;&nbsp;&nbsp;电话或邮箱格式不正确！</font>');
						r1--;
						r--;
					}
					break;
				case "phone":
					if(!isMobileNum(value)){
						$("#"+name+"Tip").html('<font color="red">&nbsp;&nbsp;&nbsp;手机格式不正确！</font>');
						r1--;
						r--;
						// alert(name+r1);
					}
					break;		
				default:
					break;
				}
				if(r1==0){
					$("#"+name+"Tip").html('<font color="green">&nbsp;&nbsp;&nbsp;正确！</font>');
				}
			}
		}
	});
	return r >= 0;
}

function trimAll(){
	var $validate = $("form input");
	$validate.each(function(){
		var $input = $(this).attr('trim');
		if(typeof($input) != "undefined"){
			var $inputArr = $input.split(";");
			for(var i=0 ; i < $inputArr.length ; i++){
				switch ($inputArr[i]) {
				case "true":
					validate_trim($(this));
					break;
				default:
					break;
				}
			}
		}
	});
}

// 验证去除空格
function validate_trim(obj){
	obj.val($.trim(obj.val()));
}

String.prototype.Trim = function() {
	return this.replace(/(^\s*)|(\s*$)/g, "");
};
